package com.hlkj.pay.app.order;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.hlkj.framework.common.pojo.CommonResult;
import com.hlkj.pay.vo.openapi.merchant.req.access.OpenApiMerchantAccessSettleQueryReq;
import com.hlkj.pay.vo.openapi.merchant.req.access.OpenApiOrderSettleSubmitReq;
import com.hlkj.pay.vo.openapi.merchant.req.access.OpenApiMerchantAccessQueryReq;
import com.hlkj.pay.vo.openapi.merchant.resp.access.OpenApiOrderSettleResp;
import com.hlkj.pay.vo.openapi.merchant.resp.access.OpenApiMerchantAccessBalanceResp;

import javax.servlet.http.HttpServletRequest;

/**
 * @author HlpayTeam
 * @date 2024/12/29 16:18
 */
public interface ISettleOrderAppService {
    /**
     *
     * @param accessQueryReq
     * @return
     */
    CommonResult<OpenApiMerchantAccessBalanceResp> accessBalance(OpenApiMerchantAccessQueryReq accessQueryReq);

    /**
     *
     * @param accessQueryReq
     * @return
     */
    CommonResult<OpenApiOrderSettleResp> accessSettle(OpenApiOrderSettleSubmitReq accessQueryReq);

    /**
     *
     * @param accessQueryReq
     * @return
     */
    CommonResult<OpenApiOrderSettleResp> accessSettleQuery(OpenApiMerchantAccessSettleQueryReq accessQueryReq);
    /**
     *
     * @param channelCode
     * @param providerCode
     * @param request
     * @return
     */
    String settleCallBack(String channelCode, String providerCode, HttpServletRequest request);
}
